<?php

App::uses('AppController', 'Controller');

/**
 * Ciedes Controller
 *
 * @property Ciede $Ciede
 */
class CiedesController extends AppController {

    public $layout = 'hospital';
    public $uses = array('Ciede', 'TiposCiede', 'CiedesPaciente', 'Antecedentesanteriore','Consultasexterna','Paciente', 'Antecedentesalergico');

    public function beforeFilter() {
        parent::beforeFilter();
        //$this->Auth->allow();
    }

    public function encuentra() {
        $cies = $this->TiposCiede->find('all', array(
            'recursive' => -1,
            'fields' => array('id', 'codigo', 'nombre')
        ));
        $this->set(compact('cies'));
    }

    public function ajaxencuentracies($idCategoria = null) {
        $this->layout = 'ajax';
//        $ciesCategorizados = $this->Ciede->find('all', array(
//            'recursive' => -1,
//            'conditions' => array('tiposciede_id' => $idCategoria)
//        ));
        //debug($ciesCategorizados);
        $this->set(compact('idCategoria'));
    }

    /**
     * index method
     *
     * @return void
     */
    public function index() {
        $this->Ciede->recursive = 0;
        $this->set('ciedes', $this->paginate());
    }

    /**
     * view method
     *
     * @throws NotFoundException
     * @param string $id
     * @return void
     */
    public function view($id = null) {
        if (!$this->Ciede->exists($id)) {
            throw new NotFoundException(__('Invalid ciede'));
        }
        $options = array('conditions' => array('Ciede.' . $this->Ciede->primaryKey => $id));
        $this->set('ciede', $this->Ciede->find('first', $options));
    }

    /**
     * add method
     *
     * @return void
     */
    public function add() {
        if ($this->request->is('post')) {
            $this->Ciede->create();
            if ($this->Ciede->save($this->request->data)) {
                $this->flash(__('Ciede saved.'), array('action' => 'index'));
            } else {
                
            }
        }
        $tiposciedes = $this->Ciede->Tiposciede->find('list');
        $this->set(compact('tiposciedes'));
    }

    /**
     * edit method
     *
     * @throws NotFoundException
     * @param string $id
     * @return void
     */
    public function edit($id = null) {
        if (!$this->Ciede->exists($id)) {
            throw new NotFoundException(__('Invalid ciede'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            if ($this->Ciede->save($this->request->data)) {
                $this->flash(__('The ciede has been saved.'), array('action' => 'index'));
            } else {
                
            }
        } else {
            $options = array('conditions' => array('Ciede.' . $this->Ciede->primaryKey => $id));
            $this->request->data = $this->Ciede->find('first', $options);
        }
        $tiposciedes = $this->Ciede->Tiposciede->find('list');
        $this->set(compact('tiposciedes'));
    }

    /**
     * delete method
     *
     * @throws NotFoundException
     * @throws MethodNotAllowedException
     * @param string $id
     * @return void
     */
    public function delete($id = null) {
        $this->Ciede->id = $id;
        if (!$this->Ciede->exists()) {
            throw new NotFoundException(__('Invalid ciede'));
        }
        $this->request->onlyAllow('post', 'delete');
        if ($this->Ciede->delete()) {
            $this->flash(__('Ciede deleted'), array('action' => 'index'));
        }
        $this->flash(__('Ciede was not deleted'), array('action' => 'index'));
        $this->redirect(array('action' => 'index'));
    }

    public function ajaxautocomplete() {
        $this->layout = 'ajax';
        $this->set('posts', $this->Ciede->find('all', array(
                    'conditions' => array(
                        'Ciede.descod4 LIKE' => '%' . $this->params['url']['q'] . '%'
                    ),
                    'limit' => $this->params['url']['limit'],
                        //'limit' => 50,
                        //'fields' => array('descod4')
        )));
    }

    public function ajaxencuentracie() {
        //debug($this->request->data);die;
        $idPaciente = $this->request->data['Ciede']['idPaciente'];
        $idConsulta = $this->request->data['Ciede']['idConsulta'];
        $anterior = $this->request->data['Ciede']['anterior'];
        $this->layout = 'ajax';
        $parametro = $this->request->data['Ciede']['parametro'];
        /*$ciesEncontrados = $this->Ciede->find('all', array(
            'recursive'=>-1,
            'conditions'=>array(
                'Ciede.descod4 LIKE'=>"%$parametro%",
                'OR'=>array('Ciede.descod3 LIKE'=>"%$parametro%")
            ),
        ));*/
//        $sql = "
//            SELECT * 
//            FROM ciedes 
//            WHERE descod3 like '%$parametro%' 
//                or descod4 like '%$parametro%' ORDER BY id ASC";
        $sql = "SELECT * 
            FROM  `ciedes` 
            WHERE
            cod3 LIKE  '$parametro'
            or cod4 LIKE  '$parametro'
            or `descod3` LIKE  '%$parametro%'
            OR  `descod4` LIKE  '%$parametro%'";
        //debug($sql);exit;
        $ciesEncontrados = $this->Ciede->query($sql);       
        //debug($ciesEncontrados);
        $this->set(compact('ciesEncontrados', 'idPaciente', 'idConsulta', 'anterior'));
        //debug($this->request->data);
    }
    
    public function ajaxregitracie()
    {
        
        $hoy = date('Y-m-d');
        $idUsuario = $this->Session->read('Auth.User.id');        
        $idConsulta = $this->request->data['Ciedes']['consultasexterna_id'];     
        $anterior = $this->request->data['Ciedes']['anterior'];     
        $this->request->data['Ciedes']['user_id'] = $idUsuario;
        $this->request->data['Ciedes']['fecha'] = $hoy;
        
        if($anterior=="anterior"){
            
            $this->Antecedentesanteriore->create();
            if($this->Antecedentesanteriore->save($this->request->data['Ciedes']))
            {
               
                $cadena = $this->request->data['Ciedes']['descripcioncie'];
                $palabra = 'ALERGIA';
                
                if (strstr($cadena,$palabra))
                {
                    $datos = $this->request->data['Ciedes'];
                    
                   
                    $this->Antecedentesalergico->create();
                    $this->Antecedentesalergico->save($datos);
                }
                 
                
                $this->Session->setFlash('Ancedente registrado', 'bueno');
                $this->redirect(array('controller'=>'Pacientes', 'action'=>'verestadopaciente', $idConsulta, 'txt_motivo'));
                //DATAS FOR LOG           
                $datosFicha = $this->Consultasexterna->find('first', array(
                    'recursive' => 0,
                    'conditions' => array('Consultasexterna.id' => $idConsulta)
                ));
                $ciedespacientes = $this->CiedesPaciente->find('all', array(
                    'recursive' => -1,
                    'conditions' => array('CiedesPaciente.consultasexterna_id' => $idConsulta)
                ));
                //debug($ciedespaciente);exit();
                $nombreMedico = $this->Session->read('Auth.User.nombre') . ' ' . $this->Session->read('Auth.User.apellido_paterno') . ' ' . $this->Session->read('Auth.User.apellido_materno');
                //debug($nombre);exit();
                foreach ($ciedespacientes as $de) {
                        
                    $descie = $de['CiedesPaciente']['descripcioncie'];
                    $observaciones=$de['CiedesPaciente']['observaciones'];                
                    $numeroFicha = $datosFicha['Consultasexterna']['number'];
                    $nombrePaciente = $datosFicha['Paciente']['nombres'] . ' ' . $datosFicha['Paciente']['ap_paterno'] . ' ' . $datosFicha['Paciente']['ap_materno'];
                    CakeLog::warning("Cambio Ficha: $numeroFicha \t\t Paciente: $nombrePaciente \t\t Doctor: $nombreMedico \t\t Cie10: $descie \t\t Observaciones: $observaciones", 'cambio');
                }   
                //end log
                
                $this->Session->setFlash('Ciedes registrado', 'bueno');
                $this->redirect(array('controller'=>'Pacientes', 'action'=>'verestadopaciente', $idConsulta, 'txt_motivo'));
                
            }
            
        }else{
            //echo 'no anterior';
            $this->CiedesPaciente->create();
            if($this->CiedesPaciente->save($this->request->data['Ciedes']))
            {
                $cadena = $this->request->data['Ciedes']['descripcioncie'];
                $palabra = 'ALERGIA';
                
                if (strstr($cadena,$palabra))
                {
                    $datos = $this->request->data['Ciedes'];
                    
                    $this->Antecedentesalergico->create();
                    $this->Antecedentesalergico->save($datos);
                }
                
                //DATAS FOR LOG           
                $datosFicha = $this->Consultasexterna->find('first', array(
                    'recursive' => 0,
                    'conditions' => array('Consultasexterna.id' => $idConsulta)
                ));
                $ciedespacientes = $this->CiedesPaciente->find('all', array(
                    'recursive' => -1,
                    'conditions' => array('CiedesPaciente.consultasexterna_id' => $idConsulta)
                ));
                //debug($ciedespaciente);exit();
                $nombreMedico = $this->Session->read('Auth.User.nombre') . ' ' . $this->Session->read('Auth.User.apellido_paterno') . ' ' . $this->Session->read('Auth.User.apellido_materno');
                //debug($nombre);exit();
                foreach ($ciedespacientes as $de) {
                    
                    $descie = $de['CiedesPaciente']['descripcioncie'];
                    $observaciones=$de['CiedesPaciente']['observaciones'];                
                    $numeroFicha = $datosFicha['Consultasexterna']['number'];
                    $nombrePaciente = $datosFicha['Paciente']['nombres'] . ' ' . $datosFicha['Paciente']['ap_paterno'] . ' ' . $datosFicha['Paciente']['ap_materno'];
                    CakeLog::warning("Cambio Ficha: $numeroFicha \t\t Paciente: $nombrePaciente \t\t Doctor: $nombreMedico \t\t Cie10: $descie \t\t Observaciones: $observaciones", 'cambio');
                }   
                //end log
                $this->Session->setFlash('Ciedes registradod', 'bueno');
                $this->redirect(array('controller'=>'Pacientes', 'action'=>'verestadopaciente', $idConsulta, 'cie'));
            }
        }
        //die;        
    }
}